package model;

import utils.Images;

/**
 * 自动火球对象，在柱子间生成，拾取则加一点AF值，按e发射火球后消耗一点AF值，并发射自动寻找骷髅对象的火球将其消灭，骷髅对象死亡后会随机掉落AF值
 */
public class AutoFireball extends MovingObject implements Collision {
    int index = 1;

    /**
     * 自动火球会在柱子间生成
     *
     * @param column 柱子对象
     */
    AutoFireball(Column column) {
        super(column.x, column.y, Images.fireball.getWidth(null), Images.fireball.getHeight(null));
    }

    @Override
    public boolean hit(Bird bird) {
        /*通过计算道具与小鸟的直线距离来判定碰撞*/
        double s = Math.pow(Math.pow(x - bird.x, 2) + Math.pow(y - bird.y, 2), 0.5);
        return s < 37.5;
    }

    public void move() {
        //对index的值进行约束，防止index的值发生溢出
        if (index == 120) {
            index = 1;
        }
        /*每绘制6遍切换下一张图片*/
        Images.BLUEFireball = Images.autoFireballImages[(index / 6) % 30];
        index++;
    }

    @Override
    public void step() {
        x -= 4;
    }

}
